package leetcode.code0849;

import leetcode.helper.MaxDebug;

/**
 * 执行用时：1 ms, 在所有 Java 提交中击败了100.00%的用户
 *
 * 内存消耗：40.2 MB, 在所有 Java 提交中击败了62.36%的用户
 *
 * 通过测试用例：81 / 81
 *
 * @author CaoYu
 * @date 2021年11月28日
 * @description
 */
public class Solution1 extends Solution849 {

	@Override
	public int maxDistToClosest(int[] seats) {
		int max = 0;
		int left = -1;
		int len = seats.length;
		int maxLeft = 0;
		int maxRight = len - 1;
		int ansSiteLeft = 0;
		for (int i = 0; i < len; i++) {
			if (seats[i] == 1) {
				if (left == -1) {
					ansSiteLeft = i;// 加入坐在最左边，距离是多少。
				}
				int distance = i - left;
				if (distance > max) {// 最大间距
					maxLeft = left;
					maxRight = i;
					max = distance;
				}
				left = i;
			}
		}
		int ans = (maxRight - maxLeft) >> 1;// 坐在中间，两边有人（可能是假装两边有人）,最大距离
		int ansSiteRight = len - 1 - left; // 坐在最右边，left是坐在最右边的最后一个人
		return Math.max(Math.max(ansSiteLeft, ansSiteRight), ans);// 三者中最大
	}

	public static void main(String[] args) {
		Solution1 so = new Solution1();
		so.debug8();
		so.debug7();
		so.debug6();
		so.debug5();
		MaxDebug.debug14(so);

	}

}
